// 正则相关的方法

// 正则方法：   test  exec   需要由正则表达式去调用
// 字符串方法： match  replace  split  search     需要用字符串去调用

// let reg = /h/g;
// let str = 'hello hello';

// // console.log( reg.test(str) ); // true
// console.log(  str.match(reg)  ); // [ 'h', 'h' ]

// -------------   捕获和引用 ------------
// let str = '1122 3434 5566 7878 9009';
// 匹配连续的四个数字
// console.log( str.match(/\d\d\d\d/g) );

// 匹配连续的四个数字，要求 前两个数字相同，后两个数字相同
// console.log( str.match(/(\d)\1(\d)\2/g) );

// 匹配连续的四个数字，要求 1、3位置数字相同，2、4位置数字相同
// console.log( str.match(/(\d)(\d)\1\2/g) );

// 正则加小括号，第一表示这是一个整体，第二表示捕获
// \1  \2 等等，表示引用，引用前面捕获的值


// -------------  exec 正则方法 ----------------
// exec 特点，一次只匹配一个结果
//           如果还需要匹配其他结果，继续调用exec方法
//           如果没有结果可以匹配了。则返回null
// let str = 'this is a ES6 that is a H5 and css3';
// let reg = /[A-Z]+\d/g;

// console.log( reg.exec(str) ); // ['ES6', .......]
// console.log( reg.exec(str) ); // ['H5', .......]
// console.log( reg.exec(str) ); // null


// -------------  exec 方法，带小括号的形式 ------------
// let str = 'this is a ES6 that is a H5 and css3';
// let reg = /[A-Z]+(\d)/g;

// console.log( reg.exec(str) ); // ['ES6', '6', .......]
// console.log( reg.exec(str) ); // ['H5', '5', .......]
// console.log( reg.exec(str) ); // null